package com.nehc.nettyserver.service;

import java.util.Map;

/**
 * 用户认证服务接口
 * 提供用户登录、注册、权限验证功能
 * 
 * @author NEHC
 */
public interface UserAuthService {

    /**
     * 用户登录
     * 
     * @param username 用户名
     * @param password 密码
     * @return 登录结果，包含token和用户信息
     */
    Map<String, Object> login(String username, String password);
    
    /**
     * 用户注册
     * 
     * @param username 用户名
     * @param password 密码
     * @param nickname 昵称
     * @return 注册结果
     */
    boolean register(String username, String password, String nickname);
    
    /**
     * 用户登出
     * 
     * @param userId 用户ID
     */
    void logout(String userId);
    
    /**
     * 检查用户是否有指定权限
     * 
     * @param userId 用户ID
     * @param permission 权限标识
     * @return 是否有权限
     */
    boolean hasPermission(String userId, String permission);
    
    /**
     * 检查用户是否有指定角色
     * 
     * @param userId 用户ID
     * @param role 角色名
     * @return 是否有角色
     */
    boolean hasRole(String userId, String role);
    
    /**
     * 获取当前登录用户ID
     * 
     * @return 用户ID
     */
    String getCurrentUserId();
    
    /**
     * 获取当前登录用户信息
     * 
     * @return 用户信息
     */
    Map<String, Object> getCurrentUserInfo();
} 